Benjamin Otte [Wed, 16 Nov 2011 02:52:02 +0000 (03:52 +0100)]
a11y: Merge function into only caller
Also cleann up comments that are misleading now.
Benjamin Otte [Wed, 16 Nov 2011 02:47:33 +0000 (03:47 +0100)]
treeview: Call a11y functions for culmn changes directly
This way, the a11y code knows if a column was reordered, added or
removed and can do the right things instead of trying to guess and
getting it wrong.
Also, this patch finalizes the changes so that only visible columns
exist to the accessibility interface.
Benjamin Otte [Wed, 16 Nov 2011 01:40:49 +0000 (02:40 +0100)]
a11y: Unify column-by-index getting
We are only ever interested in visible columns. Invisible columns do not
exist for all a11y cares.
Benjamin Otte [Wed, 16 Nov 2011 00:32:07 +0000 (01:32 +0100)]
tests: Add an invisible column to the tree test
This one should be invisible if everything works as it should.
Benjamin Otte [Tue, 15 Nov 2011 21:29:45 +0000 (22:29 +0100)]
tests: Add checks for row/column index to accessibility-dump
Benjamin Otte [Tue, 15 Nov 2011 21:18:40 +0000 (22:18 +0100)]
tests: Don't dump stuff twice for tables
Captions and headers are printed as part of the children, so we can
avoid the duplication by just printing the name.
Benjamin Otte [Tue, 15 Nov 2011 15:45:48 +0000 (16:45 +0100)]
a11y: Use gtk_tree_view_get_n_columns()
In fact, invent our own function get_n_columns() which actually only
counts the visible functions, because that's the only ones we care
about.
The places where it's not used yet will be changed in the coming
patches.
Benjamin Otte [Tue, 15 Nov 2011 15:37:24 +0000 (16:37 +0100)]
API: treeview: Add gtk_tree_view_get_n_columns()
Benjamin Otte [Tue, 15 Nov 2011 20:30:46 +0000 (21:30 +0100)]
a11y: Fix get_column_index()
Benjamin Otte [Tue, 15 Nov 2011 19:24:51 +0000 (20:24 +0100)]
a11y: remove argument from get_column_number()
The argument was always FALSE.
Benjamin Otte [Tue, 15 Nov 2011 14:12:34 +0000 (15:12 +0100)]
treeview: Simplify a check
Use the same method as elsewhere.
Benjamin Otte [Tue, 15 Nov 2011 14:04:20 +0000 (15:04 +0100)]
treeview: Minor beautification
Benjamin Otte [Sun, 13 Nov 2011 03:43:32 +0000 (04:43 +0100)]
tests: Up the ante
Put 10000 rows into the tree-performance test, so the tests don't finish
in <1s. That's too little for profiling.
Benjamin Otte [Sun, 13 Nov 2011 03:28:52 +0000 (04:28 +0100)]
a11y: remove useless argument
The argument is unused these days, so don't confuse people with it.
Benjamin Otte [Sun, 13 Nov 2011 01:52:04 +0000 (02:52 +0100)]
a11y: Remove clean_rows function
It doesn't do anything anymore.
Benjamin Otte [Sun, 13 Nov 2011 01:47:42 +0000 (02:47 +0100)]
a11y: Don't crete cell infos for non-children
When we use a container inbetween, this ensures that the cell infos
don't replace each other in the hash table.
Benjamin Otte [Sat, 12 Nov 2011 05:37:08 +0000 (06:37 +0100)]
a11y: Make find by index lookup use the hash table again
This should give back the performance that was lost with the commit
"a11y: Make the cache lookup function inefficient".
Benjamin Otte [Sat, 12 Nov 2011 04:38:52 +0000 (05:38 +0100)]
a11y: Add a hash function for cell infos
Note that comparing the tree is not necessary as the nodes are already
unique per row.
Benjamin Otte [Sat, 12 Nov 2011 04:24:32 +0000 (05:24 +0100)]
a11y: Compute the cell index quicker
We have the node available, so we can compute it from there.
Benjamin Otte [Sat, 12 Nov 2011 04:15:53 +0000 (05:15 +0100)]
treeview: Add _gtk_rbtree_node_get_index()
.. as a replacement for _gtk_rbtree_node_find_parity(). Instead of 1 or
0, the function now returns the index of node in the complete tree
(counting from the root). And this is of course identical to the row
number.
Benjamin Otte [Sat, 12 Nov 2011 04:05:19 +0000 (05:05 +0100)]
a11y: Compute index the easy way
index is row_index * n_columns + column_index
We use it everywhere, why not here?
Benjamin Otte [Sat, 12 Nov 2011 03:56:29 +0000 (04:56 +0100)]
a11y: Redo indexing
We now index rows by actual expanded row number and don't count them
ourselves no more.
Benjamin Otte [Sat, 12 Nov 2011 03:55:32 +0000 (04:55 +0100)]
tests: Ensure the treeview is expanded
Otherwise the test code might ignore collapsed rows, which makes it go
rather fast.
Benjamin Otte [Sat, 12 Nov 2011 02:39:48 +0000 (03:39 +0100)]
treeview: Redo row tracking
Track the RBNode/RBTree instead of keeping a TreeRowReference. This is a
whole lot faster and less error-prone.
Also, notify the accessible of removal of rows before actually removing
them, so we have a chance to clean up.
Benjamin Otte [Sat, 12 Nov 2011 02:38:40 +0000 (03:38 +0100)]
widget: Add _gtk_widget_peek_accessible()
This function returns the accessible if it already exists. This way we
can call functions on the accessible from the widget itself instead of
having to rely on signals.
Benjamin Otte [Sat, 12 Nov 2011 02:20:12 +0000 (03:20 +0100)]
a11y: Remove needless checks
The cell_row_ref and cell_col_ref variables are always non-NULL, so
there's no need to check it.
Benjamin Otte [Sat, 12 Nov 2011 02:18:13 +0000 (03:18 +0100)]
a11y: Add a cell_info_get_path() function
Reads better and we only need to change it in one place.
Benjamin Otte [Sat, 12 Nov 2011 01:18:26 +0000 (02:18 +0100)]
treeview: Remove unnecessary variable
tmptree has the same value as tree everywhere, so just use tree instead.
Benjamin Otte [Fri, 11 Nov 2011 20:03:49 +0000 (21:03 +0100)]
a11y: Mark object as defunct in destroy notify
Instead of requiring a special functio to be called before just removing
from the hash table. This simplifies code a lot that used to remove from
the hash table.
Benjamin Otte [Fri, 11 Nov 2011 19:30:39 +0000 (20:30 +0100)]
a11y: Remove in_use member
After the latest changes, it is now always TRUE, so adjust the code
accordingly.
Benjamin Otte [Fri, 11 Nov 2011 19:25:14 +0000 (20:25 +0100)]
a11y: Don't garbage collect anymore
Instead, remove cell infos immediately from the hash table.
Benjamin Otte [Fri, 11 Nov 2011 19:18:09 +0000 (20:18 +0100)]
a11y: Improve cell_infos table
- Name it properly
- Make it just a set of cell_infos
Currently it's using direct hash, but as long as we don't actually
lookup stuff from it, who cares...
Benjamin Otte [Fri, 11 Nov 2011 19:11:50 +0000 (20:11 +0100)]
a11y: Implement find_cell_info() using qdata lookup
That should be orders of magnitude faster then iterating over a hash
table.
Benjamin Otte [Fri, 11 Nov 2011 19:06:20 +0000 (20:06 +0100)]
a11y: Store the cellinfo in the cell's qdata
Benjamin Otte [Fri, 11 Nov 2011 02:02:31 +0000 (03:02 +0100)]
a11y: Remove index from cellaccessible
That way we also get rid of the refresh_index function.
Benjamin Otte [Fri, 11 Nov 2011 01:52:47 +0000 (02:52 +0100)]
a11y: Don't use the cell's index anymore
We implement get_cell_index() now, so it's no longer necessary.
As a side effect, we need a different index for our hash table (which
now has a wrong name, but that will soon change).
Benjamin Otte [Fri, 11 Nov 2011 01:48:40 +0000 (02:48 +0100)]
a11y: Implement get_child_index in treeview
Benjamin Otte [Fri, 11 Nov 2011 01:19:28 +0000 (02:19 +0100)]
a11y: Implement get_child_index in treeviewaccessible
Benjamin Otte [Fri, 11 Nov 2011 00:43:54 +0000 (01:43 +0100)]
gtk: Fix compiler warnings from include fixes
Benjamin Otte [Fri, 11 Nov 2011 00:40:36 +0000 (01:40 +0100)]
a11y: Make the cache lookup function inefficient
Ahem.
This is in preparation for future changes and is not meant to stay this
way. But I want to change the hash table's keys and this is way easier
when nobody is using them.
Benjamin Otte [Fri, 11 Nov 2011 00:35:50 +0000 (01:35 +0100)]
a11y: Change function declaration
Returning an int seems way easier than having an int out argument to a
void function. Also, it doesn't lead to uninitialized memory, what a
concept!
Benjamin Otte [Fri, 11 Nov 2011 00:25:09 +0000 (01:25 +0100)]
a11y: Add a special-case for cell index querying
I could have tried to make GtkContainerCellAccessible implement
GtkCellAccessibleParent, but the current implementation of that
interface doesn't make sense for it.
Benjamin Otte [Thu, 10 Nov 2011 21:07:19 +0000 (22:07 +0100)]
a11y: Add _gtk_cell_accessible_parent_get_child_index()
This will soon replace the shenanigans we do to keep the index of cells
current.
Benjamin Otte [Thu, 7 Jul 2011 08:25:02 +0000 (10:25 +0200)]
a11y: Remove idle handler for focus notifications
Benjamin Otte [Thu, 7 Jul 2011 07:54:04 +0000 (09:54 +0200)]
a11y: Re-implement gtk_tree_view_accessible_get_n_rows()
... using the new _gtk_rbtree_find_index().
Benjamin Otte [Thu, 7 Jul 2011 07:52:24 +0000 (09:52 +0200)]
treeview: Add _gtk_rbtree_find_index()
Uses the parity to do an O(log N) search for the nth element in the
tree in display order of the treeview.
Benjamin Otte [Wed, 16 Nov 2011 03:14:00 +0000 (04:14 +0100)]
treeview: Rename "parity" to "total_count"
Now that we use it to actually count the rows instead of just even/odd,
it's better to reflect that in the variable name.
Benjamin Otte [Thu, 7 Jul 2011 06:48:06 +0000 (08:48 +0200)]
treeview: Make the parity actually store the row number
Instead of just storing the least significant bit of the row number,
store the full row number. This will soon be useful for accessibility.
But CSS could like it, too.
Benjamin Otte [Thu, 7 Jul 2011 06:47:25 +0000 (08:47 +0200)]
treeview: Remove special cases when computing parity
The parity of the nil npode is always 0, so no need to check for the nil
node first.
Benjamin Otte [Thu, 7 Jul 2011 06:46:05 +0000 (08:46 +0200)]
treeview: Only compute parity once when rendering
This shouldn't affect performance too much, but it I just found it so I
fixed it.
Stef Walter [Mon, 14 Nov 2011 09:59:10 +0000 (10:59 +0100)]
GtkSpinButton: Clarify clamping behavior in gtk_spin_button_set_range doc
* If the current value is outside the range, it will be adjusted
to fit within the range, otherwise it will remain unchanged.
https://bugzilla.gnome.org/show_bug.cgi?id=664021
Matthias Clasen [Tue, 15 Nov 2011 05:47:16 +0000 (00:47 -0500)]
Avoid double inclusion of a migration chapter
Matthias Clasen [Tue, 15 Nov 2011 05:21:56 +0000 (00:21 -0500)]
GtkTextViewAccessible: Respect display lines
This special tweak was lost when porting from GailTextUtil.
https://bugzilla.gnome.org/show_bug.cgi?id=663994
Martin Pitt [Mon, 14 Nov 2011 12:08:47 +0000 (13:08 +0100)]
Fix GDK linking for Gtk typelib and example builds
Add missing GDK linking to GIR build and examples:
GISCAN Gtk-3.0.gir
CCLD gtk-query-immodules-3.0
./.libs/libgtk-3.so: undefined reference to `gdk_keymap_get_modifier_mask'
./.libs/libgtk-3.so: undefined reference to `gdk_modifier_intent_get_type'
./.libs/libgtk-3.so: undefined reference to `gdk_window_begin_resize_drag_for_device'
./.libs/libgtk-3.so: undefined reference to `gdk_event_triggers_context_menu'
collect2: ld returned 1 exit status
CCLD grid-packing
../gtk/.libs/libgtk-3.so: undefined reference to `gdk_keymap_get_modifier_mask'
[...]
https://bugzilla.gnome.org/show_bug.cgi?id=664027
Yuri Kozlov [Mon, 14 Nov 2011 19:49:47 +0000 (23:49 +0400)]
Fixed Russian translation
Matthias Clasen [Mon, 14 Nov 2011 14:23:14 +0000 (09:23 -0500)]
GtkComboBoxAccessible: Make keybindings work
https://bugzilla.gnome.org/show_bug.cgi?id=659151
Matthias Clasen [Mon, 14 Nov 2011 14:23:01 +0000 (09:23 -0500)]
Add combobox a11y tests
Matthias Clasen [Mon, 14 Nov 2011 14:18:47 +0000 (09:18 -0500)]
Add some keybindings to the a11y entries test
Martin Pitt [Mon, 14 Nov 2011 13:32:32 +0000 (14:32 +0100)]
Fix gtk_tree_view_get_tooltip_context() transfer annotation
The default (out) transfer mode is "full", but the passed "model" pointer gets
set to gtk_tree_view_get_model() which is "transfer none". This caused Python
programs to free the model after calling this, causing crashes.
Matthias Clasen [Mon, 14 Nov 2011 13:01:23 +0000 (08:01 -0500)]
Add a link to the Windows port wiki page
C. Scott Ananian [Fri, 11 Nov 2011 21:26:12 +0000 (16:26 -0500)]
Fix uninitialized digest_len field, causing WebSocket handshake to g_assert.
g_checksum_get_digest checks to ensure that the passed digest_len is long
enough to hold the digest, before setting it to the actual length of the
digest returned. Digest_len is uninitialized in the code, so if you're
lucky it will be larger than 20 and everything will work fine. If you're
unlucky, g_checksum_get_digest will return either -1 or some number less
than 20, and the g_assert(digest_len==20) will fail.
Michael Natterer [Fri, 11 Nov 2011 22:49:21 +0000 (23:49 +0100)]
quartz: fix a race condition when waking up the CGRunLoop
Wake up the run loop unconditionally (don't check if it is waiting) because
it might go into waiting state right after we checked for it. Fixes GIMP
startup (which has a lot of GIOChannel I/O but zero NSEvents) from several
minutes to a few seconds.
(cherry picked from commit
0729cdc9a1e8003c41d3ebf20eecfe2d1b29ffbe)
Matthias Clasen [Fri, 11 Nov 2011 15:26:31 +0000 (10:26 -0500)]
GtkProgressbar: respect the range of 'fraction'
The setter should not set the property to values outside the allowed
range.
https://bugzilla.gnome.org/show_bug.cgi?id=663825
Rico Tzschichholz [Fri, 11 Nov 2011 12:06:56 +0000 (13:06 +0100)]
Fix some implicit declaration warnings
There were some includes of gtkmain.h missing
Alexander Larsson [Thu, 10 Nov 2011 20:32:50 +0000 (21:32 +0100)]
win32: Make grab cursors work again
Alexander Larsson [Thu, 10 Nov 2011 15:51:07 +0000 (16:51 +0100)]
win32: Fix gdk_win32_window_translate
We now do proper handling of existing invalid regions, and
we use ScrollDC which allows us to specify the right clip
region rather than just the bounding rect.
Dieter Verfaillie [Fri, 4 Nov 2011 08:44:35 +0000 (09:44 +0100)]
win32: fix pasting screenshots taken with PrintScreen or Alt+PrintScreen
These are found on the clipboard in the biCompression == BI_BITFIELDS &&
biBitCount >= 16 format. In this case the BITMAPINFOHEADER is followed
by three DWORD specifying the masks of the red green and blue components,
but bfOffBits was not being adjusted accordingly.
Based on Massimo's comment on bug 631384 and verified on
http://msdn.microsoft.com/en-us/library/
dd183386%28v=VS.85%29.aspx
https://bugzilla.gnome.org/show_bug.cgi?id=631384
Dieter Verfaillie [Fri, 4 Nov 2011 06:41:55 +0000 (07:41 +0100)]
win32: fix some typos
Alexander Larsson [Wed, 2 Nov 2011 15:49:55 +0000 (16:49 +0100)]
win32: Fix some warnings
Alexander Larsson [Wed, 2 Nov 2011 15:11:54 +0000 (16:11 +0100)]
win32: Hack to make statusbar menus show up visible:
Alexander Larsson [Wed, 2 Nov 2011 13:30:23 +0000 (14:30 +0100)]
win32: Ensure newly mapped toplevels are inside the workarea
This is what e.g. metacity does, and its needed to e.g. get the inital
position of the gimp dock window right.
Alexander Larsson [Wed, 2 Nov 2011 11:15:53 +0000 (12:15 +0100)]
win32: Fix placement at initial position
Positioning windows at 0,0 post creation failed, because it
was mapped with CW_USEDFAULT, but private->x/y still said 0,
so moving it to 0,0 did nothing. We now always position the
window at the right place, even when not mapped, but we
create it at CW_USEDEFAULT initially and store that position
before moving it to the right place.
This fixes the window sizing test in testgtk and the inital
position for the gimp toolbar.
Alexander Larsson [Tue, 1 Nov 2011 21:25:26 +0000 (22:25 +0100)]
win32: Fix synaptics trackpad issues
The synaptics trackpad driver has some weird behaviour on scroll.
It pops up a window over the mouse pointer (looking like a scrollbar).
This has two problems:
* We get extra enter/leave events for the trackpad window
* We get back the trackpad window when we look for the window
under the mouse to deliver the mousewheel message.
So, we add some trackpad specific hacks to avoid this (sigh) based
on the trackpad window window class.
This fixes bug #542777 and was partially based on a patch there
from Peter Clifton.
Alexander Larsson [Fri, 28 Oct 2011 09:05:53 +0000 (11:05 +0200)]
win32: Add gdk_win32_window_get_impl_hwnd
This is needed to fix the ms-windows theme not to create
native windows for all child windows.
Morten Welinder [Fri, 28 Oct 2011 07:10:40 +0000 (09:10 +0200)]
win32: Actually check for IPrintDialogCallback in configure
Alexander Larsson [Thu, 27 Oct 2011 20:13:54 +0000 (22:13 +0200)]
win32: Fix modal_hint handling
Modal hints are not really a stack. All windows that are modal
are allowed to get input, not just the top one.
This fixes bug #604156
Alexander Larsson [Thu, 27 Oct 2011 15:16:46 +0000 (17:16 +0200)]
win32: Don't use API_CALL for SetWindowLong
This can return 0 without it being an error.
Should fix the last issue with bug #142874
Alexander Larsson [Thu, 27 Oct 2011 14:56:40 +0000 (16:56 +0200)]
win32: Make flush/sync work like in X
gdk_flush() should gdk_display_sync() on all open displays.
Both for display_flush and display_sync it seems useful to call
GdiFlush, but we don't have anything extra to do for display_sync,
as there is no inherent roundtrip on win32.
This should close bug #84314
Alexander Larsson [Thu, 27 Oct 2011 14:09:42 +0000 (16:09 +0200)]
win32: Add custom placements for some window types
Windows with transients: center on parent
Splash screens: center on monitor
Also properly ignores initial moves of unmapped
windows that are not override redirect or HINT_POS
Fixes bugs #324254 and #612359
Alexander Larsson [Thu, 27 Oct 2011 08:42:07 +0000 (10:42 +0200)]
win32: More robust way to ensure we get a configure event after move/resize
There were still cases where we didn't get a WINDOWPOSCHANGED after
a SetWindowPos() call, like e.g. with a larger minimum size than
the set size (bug #574935)
So, we revert the previous fix and now just always manually emit
a configure notify after the move_resize call. Also, we inhibit
the WINDOWPOSCHANGED configure event during the move_resize operation
to avoid multiple Configures.
Alexander Larsson [Wed, 26 Oct 2011 19:46:19 +0000 (21:46 +0200)]
win32: Ensure we always send a configure event when changing size/pos
There are some cases where we don't get a WINDOWPOSCHANGE such that
we generate a configure event, even if we called gdk_window_move_resize()
or similar. For instance:
* The window is fullscreen
* The window is maximized
* The specified pos/size is the same as the current one
However, as per X11 ConfigureNotify semantics we *always* want one, or
we could run into issue like e.g. bug #537296 where we're waiting for
the CONFIGURE to call gdk_window_thaw_toplevel_updates_libgtk_only().
Alexander Larsson [Wed, 26 Oct 2011 19:44:49 +0000 (21:44 +0200)]
win32: By default, allow windows larger than the screen
Alexander Larsson [Wed, 26 Oct 2011 10:43:24 +0000 (12:43 +0200)]
win32: Fix size or style changes during fullscreen
When we're fullscreen we should update the cached hints, and we
should not apply the normal hints to the style.
This fixes bug #516822
Alexander Larsson [Wed, 26 Oct 2011 09:41:35 +0000 (11:41 +0200)]
win32: Use WM_NCDESTROY instead of WM_DESTROY
WM_NCDESTROY gets called after children are destroyed, which is
the semantics DestroyNotify has in X11.
Alexander Larsson [Wed, 26 Oct 2011 09:39:15 +0000 (11:39 +0200)]
win32: Don't remove the window from the handle table on destroy
We always get the WM_DESTROY message anyway, and we remove it there.
Bug #336416 even claims this could be a leak if the WM_DESTROY
message was not seen before the DestroyWindow call returned, as
the WM_DESTROY message could not be handled later without the
window in the handle table. I'm not sure this can happen, but we
might as well remove it.
Alexander Larsson [Wed, 26 Oct 2011 09:08:33 +0000 (11:08 +0200)]
win32: Make set_keep_above work also for non-mapped windows
This fixes bug #171456
Alexander Larsson [Wed, 26 Oct 2011 08:21:10 +0000 (10:21 +0200)]
win32: Send window-state-changes before configure events
This is requires to that the state of the window is right when
you get the configure event (and to match what X does).
Fixes bug #169811
Alexander Larsson [Tue, 25 Oct 2011 14:39:42 +0000 (16:39 +0200)]
win32: Send initial configure
We need to send a configure event when a window is shown.
Alexander Larsson [Tue, 25 Oct 2011 14:13:47 +0000 (16:13 +0200)]
win32: Ignore client requested window move/size during SIZEMOVE
This will just be fighting the user like in e.g.
https://bugzilla.gnome.org/show_bug.cgi?id=64428
Alexander Larsson [Tue, 25 Oct 2011 13:36:13 +0000 (15:36 +0200)]
win32: Remove most special casing of WINPOSCHANGED during modal ops
There is no particular reason to special case this, we want to handle all
sort of normal events. The only special thing we keep is that
as an optimization we pump the message loop extra during a WINPOSCHANGED
in a modal operation as that will cause us to repaint faster.
Also, bump the arbitrary number of mainloop iterations for the timer.
I don't see why we need it at all, but at least doing more than one
iteration if needed should be nice.
Alexander Larsson [Tue, 25 Oct 2011 13:34:22 +0000 (15:34 +0200)]
win32: Fix missed resize exit message
When you start a window resize or move via the window menu and
don't actually change anything we're not getting an exitsizemove.
In order to work around this we also look for WM_CAPTURECHANGED.
Alexander Larsson [Tue, 25 Oct 2011 12:38:16 +0000 (14:38 +0200)]
win32: Handle all window changes in WINDOWPOSCHANGED
This moves all the code from WM_SIZE, WM_MOVE, and WM_SHOWWINDOW into
one place, cleans up the code and makes sure we only send a single
configure event even if both size and position changes.
Alexander Larsson [Tue, 25 Oct 2011 12:26:22 +0000 (14:26 +0200)]
win32: Fix up window_show
We don't pass in raise anymore, but already_mapped.
Also, already_mapped must be used rather than MAPPED, as we already
synthesize the MAPPED in the generic code (and thus we don't have
to synthesize it again).
Dieter Verfaillie [Thu, 20 Oct 2011 15:09:31 +0000 (17:09 +0200)]
win32: correctly handle difference between tab_pos and gap_side when drawing an extension (notebook tab)
Dieter Verfaillie [Thu, 20 Oct 2011 12:03:31 +0000 (14:03 +0200)]
win32: add TODO mentioning GtkButton::child-displacement-x & y should be 0 when XP theme is active
Arnaud Charlet [Thu, 20 Oct 2011 11:18:19 +0000 (13:18 +0200)]
win32: fix typo in msw_style.c
https://bugzilla.gnome.org/show_bug.cgi?id=647460
Dieter Verfaillie [Fri, 21 Oct 2011 09:38:31 +0000 (11:38 +0200)]
win32: Call GetQueueStatus instead of PeekMessage PM_NOREMOVE
Calling PeekMessage can cause reentrant calls into the window procedure
for sent (as opposed to posted) messages, so its not safe to call
when we're not expecting reentrancy. Instead we call GetQueueStatus
when we're just looking for availible messages.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=552041
Alexander Larsson [Wed, 19 Oct 2011 19:44:38 +0000 (21:44 +0200)]
win32: Better crossing events and grab destination reporting
We new report to the right window during !owner_event grabs, and
we send proper enter and leave events.
Alexander Larsson [Wed, 19 Oct 2011 19:36:41 +0000 (21:36 +0200)]
win32: Record the native event mask in use
Alexander Larsson [Wed, 19 Oct 2011 19:35:04 +0000 (21:35 +0200)]
win32: Use right native_window for implicit grabs
The native grab really is on the window that got the button press event.